let module = function () {
  //模块容器
  let collections = {}
  return function (name, modules, action) {
    modules = modules.map((m) => collections[m])
    //将模块注册进模块容器里
    collections[name] = action.call(null, ...modules) //可以使用call或者apply 来立即执行方法
    console.log(collections)
  }
}.call()

module('Util', [], function () {
  return {
    avg() {
      console.log('求平均值')
    },
  }
})

module('Goods', ['Util'], function (Util) {
  Util.avg()

  return {
    sum() {
      console.log('商品汇总')
    },
  }
})
